/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package phd.dupenois.es.nplusn;

/**
 *
 * @param <T>
 * @author mpd209
 */
public interface NplusNListener<T extends Solution> {
    void onStart();
    void onSolutionAdded(T solution, int atGeneration);
    void onSolutionRemoved(T solution, int atGeneration);
    void onMutantGenerated(T mutant, int atGeneration);
    void onGenerationEnd(int generationEnded);
    void onGenerationStart(int generationStarting);
    void onFinish(T[] archive);
    void onFinish();
}
